package com.whmall.service.crm.module.customerpool.service;

import com.whmall.component.entity.dto.OperatorReqDTO;
import com.whmall.component.entity.dto.PageReqDTO;
import com.whmall.component.entity.dto.PageRspDTO;
import com.whmall.component.service.DbService;
import com.whmall.service.crm.entity.dto.customerpool.CustomerPoolFollowRecordCreateDTO;
import com.whmall.service.crm.entity.dto.customerpool.CustomerPoolFollowRecordQueryDTO;
import com.whmall.service.crm.entity.dto.customerpool.CustomerPoolFollowRecordRspDTO;
import com.whmall.service.crm.entity.dto.customerpool.CustomerPoolFollowRecordUpdateDTO;
import com.whmall.service.crm.module.customerpool.entity.CustomerPoolFollowRecordDO;

import java.util.List;

public interface CustomerPoolFollowRecordService extends DbService<CustomerPoolFollowRecordDO>{

    /**
     * 分页查询
     * @param queryReqDTO
     * @return
     */
    PageRspDTO<CustomerPoolFollowRecordRspDTO> page(PageReqDTO pageReqDTO, CustomerPoolFollowRecordQueryDTO queryReqDTO);

    /**
     * 列表查询
     *
     * @param condition 查询条件
     * @return 结果
     */
    List<CustomerPoolFollowRecordRspDTO> list(CustomerPoolFollowRecordQueryDTO condition);

    /**
     * 根据撮合ID查询全部的跟进记录，根据公司分组<br />
     * 此处records长度会大于pageSize
     *
     * @param pageReqDTO 分页条件
     * @param condition 查询条件
     * @return 跟进记录
     */
    PageRspDTO<CustomerPoolFollowRecordRspDTO> groupByCompanyIdWithTraderId(PageReqDTO pageReqDTO, CustomerPoolFollowRecordQueryDTO condition);

    /**
     * 登记
     * @param reqDTO
     * @param operatorReqDTO
     */
    void save(CustomerPoolFollowRecordCreateDTO reqDTO, OperatorReqDTO operatorReqDTO);

    /**
     * 更新
     * @param reqDTO
     * @param operatorReqDTO
     */
    void update(CustomerPoolFollowRecordUpdateDTO reqDTO, OperatorReqDTO operatorReqDTO);

}